home *** CD-ROM | disk | FTP | other *** search
/ ETO Development Tools 4 / ETO Development Tools 4.iso / Essentials / MacApp Documentation / MacApp.TECH$ Archives / 1988 / Mar 88 / Save as Text in MacApp 3⁄31 < prev    next >
Encoding:
Text File  |  1991-03-06  |  3.1 KB  |  68 lines  |  [TEXT/GEOL]

  1. Item    9603562                         31-March-88        14:36
  2.  
  3. From:   ROSENSTEIN1                     Rosenstein, Larry
  4.  
  5. To:     MACAPP$                         MacApp Interest List
  6.  
  7. Sub:    Save as Text in MacApp
  8.  
  9. When we designed the MacApp saving code, we explicitly thought about the
  10. problem of saving as different file types.  It is easy to do, although not well
  11. documented.  The following should give you an idea of how to implement this.
  12. There are several options depending on the exact behavior you want.
  13.  
  14. First, if you want to add radio buttons to your save dialog, you override
  15. TDocument.SFPutParms.  This method is supposed to return all the parameters for
  16. a call to SFPPutDialog (see Inside Mac).  In this case, you want to change the
  17. dialog ID -- to specify a dialog with the radio buttons -- and pass a dialog
  18. filter proc to handle the radio buttons.
  19.  
  20. (The equivalent method for the open dialog is TApplication.SFGetParms, and the
  21. UStationery unit on the MacApp developers disk shows how to modify the open
  22. dialog.)
  23.  
  24. You should save in a new TDocument field the desired file format as chosen by
  25. the user.  (I don't advice saving this information in the fFileType field of
  26. TDocument, because if the save is cancelled, you will have to restore the
  27. original value.)
  28.  
  29. The next method to look at is TDocument.AboutToSave.  You need to override this
  30. method if you want to implement the MacWrite style of saving.  You'll notice in
  31. MacWrite that saving a text-only copy of the document doesn't change the name
  32. of the window and only saves a copy of the document.  If you wanted to do the
  33. same thing, you would override AboutToSave and change the makingCopy parameter
  34. to TRUE.
  35.  
  36. MacDraw, however, does it differently.  If you save as a PICT file, then
  37. subsequent saves for that document also save as a PICT file.  In this case, you
  38. don't need to override AboutToSave.
  39.  
  40. The next method to look at is TDocument.GetSaveInfo.  This method is supposed
  41. to fill up a File Manager parameter block with the necessary information for
  42. the resulting file.  In this case, you look at the file type you want to save
  43. as, and put the desired 4-character type ID in the parameter block.
  44.  
  45. Your DoWrite method can look at the desired file type to determine how to save
  46. the file.
  47.  
  48. Finally, you need to override the method TDocument.SavedOn.  This gets called
  49. if you successfully save a document.  It normally does things like change the
  50. window title(s) in the case of a Save As... command.  You should override this
  51. and set the document's fFileType field to the type you just saved as.
  52.  
  53. This method won't be called if you changed makingCopy to TRUE in AboutToSave,
  54. and shouldn't have to be overridden if you always save into a copy (as in
  55. MacWrite).
  56.  
  57. Also, notice that your DoRead method should look at the fFileType field to
  58. determine how to read the file in the case of a Revert.
  59.  
  60. The important thing to remember is that you have to distinguish the type of the
  61. file that is currently on the disk (needed in the case of a Revert) from the
  62. type of the file you are trying to save as.  These types might be different,
  63. and don't become the same until the SavedOn method is called.
  64.  
  65. Larry
  66.  
  67.  
  68.